// Generated from C:/Users/wayne/Desktop/CMMWithIDE/src\Cmm.g4 by ANTLR 4.7
package parser;
import org.antlr.v4.runtime.tree.ParseTreeListener;

/**
 * This interface defines a complete listener for a parse tree produced by
 * {@link CmmParser}.
 */
public interface CmmListener extends ParseTreeListener {
	/**
	 * Enter a parse tree produced by {@link CmmParser#program}.
	 * @param ctx the parse tree
	 */
	void enterProgram(CmmParser.ProgramContext ctx);
	/**
	 * Exit a parse tree produced by {@link CmmParser#program}.
	 * @param ctx the parse tree
	 */
	void exitProgram(CmmParser.ProgramContext ctx);
	/**
	 * Enter a parse tree produced by {@link CmmParser#stmt}.
	 * @param ctx the parse tree
	 */
	void enterStmt(CmmParser.StmtContext ctx);
	/**
	 * Exit a parse tree produced by {@link CmmParser#stmt}.
	 * @param ctx the parse tree
	 */
	void exitStmt(CmmParser.StmtContext ctx);
	/**
	 * Enter a parse tree produced by the {@code declStmt1}
	 * labeled alternative in {@link CmmParser#declStmt}.
	 * @param ctx the parse tree
	 */
	void enterDeclStmt1(CmmParser.DeclStmt1Context ctx);
	/**
	 * Exit a parse tree produced by the {@code declStmt1}
	 * labeled alternative in {@link CmmParser#declStmt}.
	 * @param ctx the parse tree
	 */
	void exitDeclStmt1(CmmParser.DeclStmt1Context ctx);
	/**
	 * Enter a parse tree produced by the {@code declStmt2}
	 * labeled alternative in {@link CmmParser#declStmt}.
	 * @param ctx the parse tree
	 */
	void enterDeclStmt2(CmmParser.DeclStmt2Context ctx);
	/**
	 * Exit a parse tree produced by the {@code declStmt2}
	 * labeled alternative in {@link CmmParser#declStmt}.
	 * @param ctx the parse tree
	 */
	void exitDeclStmt2(CmmParser.DeclStmt2Context ctx);
	/**
	 * Enter a parse tree produced by the {@code deAs1}
	 * labeled alternative in {@link CmmParser#deAs}.
	 * @param ctx the parse tree
	 */
	void enterDeAs1(CmmParser.DeAs1Context ctx);
	/**
	 * Exit a parse tree produced by the {@code deAs1}
	 * labeled alternative in {@link CmmParser#deAs}.
	 * @param ctx the parse tree
	 */
	void exitDeAs1(CmmParser.DeAs1Context ctx);
	/**
	 * Enter a parse tree produced by the {@code deAs2}
	 * labeled alternative in {@link CmmParser#deAs}.
	 * @param ctx the parse tree
	 */
	void enterDeAs2(CmmParser.DeAs2Context ctx);
	/**
	 * Exit a parse tree produced by the {@code deAs2}
	 * labeled alternative in {@link CmmParser#deAs}.
	 * @param ctx the parse tree
	 */
	void exitDeAs2(CmmParser.DeAs2Context ctx);
	/**
	 * Enter a parse tree produced by the {@code deAs3}
	 * labeled alternative in {@link CmmParser#deAs}.
	 * @param ctx the parse tree
	 */
	void enterDeAs3(CmmParser.DeAs3Context ctx);
	/**
	 * Exit a parse tree produced by the {@code deAs3}
	 * labeled alternative in {@link CmmParser#deAs}.
	 * @param ctx the parse tree
	 */
	void exitDeAs3(CmmParser.DeAs3Context ctx);
	/**
	 * Enter a parse tree produced by {@link CmmParser#ifStmt}.
	 * @param ctx the parse tree
	 */
	void enterIfStmt(CmmParser.IfStmtContext ctx);
	/**
	 * Exit a parse tree produced by {@link CmmParser#ifStmt}.
	 * @param ctx the parse tree
	 */
	void exitIfStmt(CmmParser.IfStmtContext ctx);
	/**
	 * Enter a parse tree produced by {@link CmmParser#elseIfStmt}.
	 * @param ctx the parse tree
	 */
	void enterElseIfStmt(CmmParser.ElseIfStmtContext ctx);
	/**
	 * Exit a parse tree produced by {@link CmmParser#elseIfStmt}.
	 * @param ctx the parse tree
	 */
	void exitElseIfStmt(CmmParser.ElseIfStmtContext ctx);
	/**
	 * Enter a parse tree produced by {@link CmmParser#elseStmt}.
	 * @param ctx the parse tree
	 */
	void enterElseStmt(CmmParser.ElseStmtContext ctx);
	/**
	 * Exit a parse tree produced by {@link CmmParser#elseStmt}.
	 * @param ctx the parse tree
	 */
	void exitElseStmt(CmmParser.ElseStmtContext ctx);
	/**
	 * Enter a parse tree produced by {@link CmmParser#whileStmt}.
	 * @param ctx the parse tree
	 */
	void enterWhileStmt(CmmParser.WhileStmtContext ctx);
	/**
	 * Exit a parse tree produced by {@link CmmParser#whileStmt}.
	 * @param ctx the parse tree
	 */
	void exitWhileStmt(CmmParser.WhileStmtContext ctx);
	/**
	 * Enter a parse tree produced by the {@code assignStmt1}
	 * labeled alternative in {@link CmmParser#assignStmt}.
	 * @param ctx the parse tree
	 */
	void enterAssignStmt1(CmmParser.AssignStmt1Context ctx);
	/**
	 * Exit a parse tree produced by the {@code assignStmt1}
	 * labeled alternative in {@link CmmParser#assignStmt}.
	 * @param ctx the parse tree
	 */
	void exitAssignStmt1(CmmParser.AssignStmt1Context ctx);
	/**
	 * Enter a parse tree produced by the {@code assignStmt2}
	 * labeled alternative in {@link CmmParser#assignStmt}.
	 * @param ctx the parse tree
	 */
	void enterAssignStmt2(CmmParser.AssignStmt2Context ctx);
	/**
	 * Exit a parse tree produced by the {@code assignStmt2}
	 * labeled alternative in {@link CmmParser#assignStmt}.
	 * @param ctx the parse tree
	 */
	void exitAssignStmt2(CmmParser.AssignStmt2Context ctx);
	/**
	 * Enter a parse tree produced by {@link CmmParser#writeStmt}.
	 * @param ctx the parse tree
	 */
	void enterWriteStmt(CmmParser.WriteStmtContext ctx);
	/**
	 * Exit a parse tree produced by {@link CmmParser#writeStmt}.
	 * @param ctx the parse tree
	 */
	void exitWriteStmt(CmmParser.WriteStmtContext ctx);
	/**
	 * Enter a parse tree produced by {@link CmmParser#readStmt}.
	 * @param ctx the parse tree
	 */
	void enterReadStmt(CmmParser.ReadStmtContext ctx);
	/**
	 * Exit a parse tree produced by {@link CmmParser#readStmt}.
	 * @param ctx the parse tree
	 */
	void exitReadStmt(CmmParser.ReadStmtContext ctx);
	/**
	 * Enter a parse tree produced by {@link CmmParser#stmtBlock}.
	 * @param ctx the parse tree
	 */
	void enterStmtBlock(CmmParser.StmtBlockContext ctx);
	/**
	 * Exit a parse tree produced by {@link CmmParser#stmtBlock}.
	 * @param ctx the parse tree
	 */
	void exitStmtBlock(CmmParser.StmtBlockContext ctx);
	/**
	 * Enter a parse tree produced by the {@code forStmt1}
	 * labeled alternative in {@link CmmParser#forStmt}.
	 * @param ctx the parse tree
	 */
	void enterForStmt1(CmmParser.ForStmt1Context ctx);
	/**
	 * Exit a parse tree produced by the {@code forStmt1}
	 * labeled alternative in {@link CmmParser#forStmt}.
	 * @param ctx the parse tree
	 */
	void exitForStmt1(CmmParser.ForStmt1Context ctx);
	/**
	 * Enter a parse tree produced by the {@code forStmt2}
	 * labeled alternative in {@link CmmParser#forStmt}.
	 * @param ctx the parse tree
	 */
	void enterForStmt2(CmmParser.ForStmt2Context ctx);
	/**
	 * Exit a parse tree produced by the {@code forStmt2}
	 * labeled alternative in {@link CmmParser#forStmt}.
	 * @param ctx the parse tree
	 */
	void exitForStmt2(CmmParser.ForStmt2Context ctx);
	/**
	 * Enter a parse tree produced by the {@code type1}
	 * labeled alternative in {@link CmmParser#type}.
	 * @param ctx the parse tree
	 */
	void enterType1(CmmParser.Type1Context ctx);
	/**
	 * Exit a parse tree produced by the {@code type1}
	 * labeled alternative in {@link CmmParser#type}.
	 * @param ctx the parse tree
	 */
	void exitType1(CmmParser.Type1Context ctx);
	/**
	 * Enter a parse tree produced by the {@code type2}
	 * labeled alternative in {@link CmmParser#type}.
	 * @param ctx the parse tree
	 */
	void enterType2(CmmParser.Type2Context ctx);
	/**
	 * Exit a parse tree produced by the {@code type2}
	 * labeled alternative in {@link CmmParser#type}.
	 * @param ctx the parse tree
	 */
	void exitType2(CmmParser.Type2Context ctx);
	/**
	 * Enter a parse tree produced by the {@code type3}
	 * labeled alternative in {@link CmmParser#type}.
	 * @param ctx the parse tree
	 */
	void enterType3(CmmParser.Type3Context ctx);
	/**
	 * Exit a parse tree produced by the {@code type3}
	 * labeled alternative in {@link CmmParser#type}.
	 * @param ctx the parse tree
	 */
	void exitType3(CmmParser.Type3Context ctx);
	/**
	 * Enter a parse tree produced by the {@code variable1}
	 * labeled alternative in {@link CmmParser#variable}.
	 * @param ctx the parse tree
	 */
	void enterVariable1(CmmParser.Variable1Context ctx);
	/**
	 * Exit a parse tree produced by the {@code variable1}
	 * labeled alternative in {@link CmmParser#variable}.
	 * @param ctx the parse tree
	 */
	void exitVariable1(CmmParser.Variable1Context ctx);
	/**
	 * Enter a parse tree produced by the {@code variable2}
	 * labeled alternative in {@link CmmParser#variable}.
	 * @param ctx the parse tree
	 */
	void enterVariable2(CmmParser.Variable2Context ctx);
	/**
	 * Exit a parse tree produced by the {@code variable2}
	 * labeled alternative in {@link CmmParser#variable}.
	 * @param ctx the parse tree
	 */
	void exitVariable2(CmmParser.Variable2Context ctx);
	/**
	 * Enter a parse tree produced by {@link CmmParser#constant}.
	 * @param ctx the parse tree
	 */
	void enterConstant(CmmParser.ConstantContext ctx);
	/**
	 * Exit a parse tree produced by {@link CmmParser#constant}.
	 * @param ctx the parse tree
	 */
	void exitConstant(CmmParser.ConstantContext ctx);
	/**
	 * Enter a parse tree produced by the {@code compare1}
	 * labeled alternative in {@link CmmParser#compare}.
	 * @param ctx the parse tree
	 */
	void enterCompare1(CmmParser.Compare1Context ctx);
	/**
	 * Exit a parse tree produced by the {@code compare1}
	 * labeled alternative in {@link CmmParser#compare}.
	 * @param ctx the parse tree
	 */
	void exitCompare1(CmmParser.Compare1Context ctx);
	/**
	 * Enter a parse tree produced by the {@code compare2}
	 * labeled alternative in {@link CmmParser#compare}.
	 * @param ctx the parse tree
	 */
	void enterCompare2(CmmParser.Compare2Context ctx);
	/**
	 * Exit a parse tree produced by the {@code compare2}
	 * labeled alternative in {@link CmmParser#compare}.
	 * @param ctx the parse tree
	 */
	void exitCompare2(CmmParser.Compare2Context ctx);
	/**
	 * Enter a parse tree produced by the {@code compare3}
	 * labeled alternative in {@link CmmParser#compare}.
	 * @param ctx the parse tree
	 */
	void enterCompare3(CmmParser.Compare3Context ctx);
	/**
	 * Exit a parse tree produced by the {@code compare3}
	 * labeled alternative in {@link CmmParser#compare}.
	 * @param ctx the parse tree
	 */
	void exitCompare3(CmmParser.Compare3Context ctx);
	/**
	 * Enter a parse tree produced by the {@code mulExpr1}
	 * labeled alternative in {@link CmmParser#expr}.
	 * @param ctx the parse tree
	 */
	void enterMulExpr1(CmmParser.MulExpr1Context ctx);
	/**
	 * Exit a parse tree produced by the {@code mulExpr1}
	 * labeled alternative in {@link CmmParser#expr}.
	 * @param ctx the parse tree
	 */
	void exitMulExpr1(CmmParser.MulExpr1Context ctx);
	/**
	 * Enter a parse tree produced by the {@code factor2}
	 * labeled alternative in {@link CmmParser#expr}.
	 * @param ctx the parse tree
	 */
	void enterFactor2(CmmParser.Factor2Context ctx);
	/**
	 * Exit a parse tree produced by the {@code factor2}
	 * labeled alternative in {@link CmmParser#expr}.
	 * @param ctx the parse tree
	 */
	void exitFactor2(CmmParser.Factor2Context ctx);
	/**
	 * Enter a parse tree produced by the {@code factor1}
	 * labeled alternative in {@link CmmParser#expr}.
	 * @param ctx the parse tree
	 */
	void enterFactor1(CmmParser.Factor1Context ctx);
	/**
	 * Exit a parse tree produced by the {@code factor1}
	 * labeled alternative in {@link CmmParser#expr}.
	 * @param ctx the parse tree
	 */
	void exitFactor1(CmmParser.Factor1Context ctx);
	/**
	 * Enter a parse tree produced by the {@code expr1}
	 * labeled alternative in {@link CmmParser#expr}.
	 * @param ctx the parse tree
	 */
	void enterExpr1(CmmParser.Expr1Context ctx);
	/**
	 * Exit a parse tree produced by the {@code expr1}
	 * labeled alternative in {@link CmmParser#expr}.
	 * @param ctx the parse tree
	 */
	void exitExpr1(CmmParser.Expr1Context ctx);
	/**
	 * Enter a parse tree produced by the {@code factor4}
	 * labeled alternative in {@link CmmParser#expr}.
	 * @param ctx the parse tree
	 */
	void enterFactor4(CmmParser.Factor4Context ctx);
	/**
	 * Exit a parse tree produced by the {@code factor4}
	 * labeled alternative in {@link CmmParser#expr}.
	 * @param ctx the parse tree
	 */
	void exitFactor4(CmmParser.Factor4Context ctx);
	/**
	 * Enter a parse tree produced by the {@code factor3}
	 * labeled alternative in {@link CmmParser#expr}.
	 * @param ctx the parse tree
	 */
	void enterFactor3(CmmParser.Factor3Context ctx);
	/**
	 * Exit a parse tree produced by the {@code factor3}
	 * labeled alternative in {@link CmmParser#expr}.
	 * @param ctx the parse tree
	 */
	void exitFactor3(CmmParser.Factor3Context ctx);
}